home *** CD-ROM | disk | FTP | other *** search
- D86 debugger package V2.17 November 16, 1986
- The entire package is Copyright (C)1986 Eric Isaacson. All rights reserved.
-
-
- Introduction
-
- This is a preliminary test copy of D86. D86 is the finest debugger available,
- under any terms at any price, for the IBM-PC and compatibles. I call it a
- preliminary copy because it does not yet meet my standards for professional-
- quality software. (If you examine this package, though, you'll deduce that
- my standards are high.) I am releasing this version now because:
-
- a. I promised my registered A86 users that I would; and
-
- b. D86 is already considerably better than anything else on the market.
- In fact, I consider it to be a milestone in debugger technology. It
- would be cruel of me to withhold it any longer.
-
- Those of you who have already registered for A86 are, under the terms of my
- inaugural A86 offer, also registered for this D86 package. It is your reward
- for your quick support of a new software package. I thank you again, and I
- hope to hear your comments and suggestions.
-
- In contrast to software firms who attempt to restrict the distribution of
- their software through protection schemes, I encourage free distribution,
- and trust that those who use my products will pay for them. Please keep in
- mind the fundamental good spirit of free-distribution software as you endure
- the following barrage of legalities. Then evaluate the outstanding value that
- the D86 package offers you. I assure you that you will not be disappointed.
-
-
- Legal Terms and Conditions
-
- This package is provided to you under the following conditions:
-
- 1. You may copy this entire package, and give it to anyone who accepts these
- terms. The copies you distribute must be complete and unmodified. You
- do not have to be registered to distribute this package.
-
- 2. You may execute the programs in this package, in order to evaluate them.
- If you decide that any of this package is of use to you, you must become a
- registered user by sending $40 US to:
-
- Eric Isaacson
- 416 E. University Street
- Bloomington, IN 47401
-
- Registered users may order update-diskettes (5.25 inch, double density)
- for $10 US, plus enough to cover extra postage if you are overseas. (In
- other words, send $50 if you want to register and get an update-diskette.)
- Once you register for this package, you are entitled to a life-time of
- updates of this package, at $10 each, as long is I am in business and
- willing to cash your $10 checks. (Well, let's make that 10 1986-dollars.
- If rampant inflation sets in, I reserve the right to raise prices
- accordingly.) Indiana residents add sales tax.
-
- Because of the preliminary nature of this version of D86, I strongly
- recommend that you add the $10 to your registration, to get the next version
- as quickly as possible. D86 will be enhanced significantly in the coming
- months. If you do order an update, be sure to specify in your order which
- version you now have. If I feel that you are close enough to the current
- version, I'll send you a postcard to that effect, and put you on my list for
- first shipment of the next enhancement version.
-
- To use D86, you must have the associated assembler, A86. A copy of A86
- (without all of its documentation) is included in the D86 package. If you
- are using D86 to debug only programs written in languages other than A86,
- then you do not need to register for A86. If you are programming in A86,
- then you must register for A86. There is a $10 discount for combined
- registration of A86 and D86. Instead of $40+$40 = $80, the charge for both
- packages is $70.
-
- Educational institutions and training facilities MUST be registered in order
- to use D86 in courses. Contact me for special terms.
-
- Companies and government agencies MUST be registered in order to use D86 for
- their work. Again, contact me for special terms.
-
- 3. You may not sell this package to anyone. If you distribute this package
- on a diskette, any fees you collect must be specified as materials/handling,
- and may not exceed $10 for the diskette.
-
- 4. You are completely responsible for determining the fitness or usability of
- this package. I will not be liable for any damages, of any kind, arising
- from any failure of any programs in this package to perform as expected.
-
-
- Overview of D86
-
- D86 is a screen-oriented program that allows you to troubleshoot faulty computer
- programs written for the IBM-PC. It "freezes" the state of your program, and
- allows you to investigate the values of registers, flags, and memory. You can
- monitor your program's execution by stepping it one instruction or procedure at
- a time; or you can start your program running, telling D86 to stop it when it
- reaches certain locations. D86 recognizes the symbol-table output of the A86
- assembler, creating a symbolic disassembly of your A86 program, and allowing
- you to refer to locations and variables by name.
-
- The primary design criterion for D86 is ease of use. This is reflected in the
- most notable features of D86:
-
- * You don't need to ask D86 what the values of registers and flags are. They
- are there, automatically, at a fixed location on the screen.
-
- * You don't need to ask D86 where in your program you are stopped. A
- disassembly is always generated, at another fixed location on the screen.
- The disassembly gives a hefty chunk of your program, not just the single
- instruction you are at. A cursor next to the disassembly marks the current
- location. The disassembly chunk remains fixed as you step though it,
- allowing you to follow the flow of the program much more easily. If you
- wrote the program using A86, the disassembly is symbolic, giving instruction
- operands by name, and labelling disassembly locations when possible.
-
- * You don't need to ask D86 what is on the machine stack. A display of the top
- elements of the stack is always generated, at yet another fixed location
- on the screen.
-
- * You can set up windows into memory, displaying memory contents in a variety of
- types. The types can even be mixed, to display complicated structures.
- The windows will stay at the same location until you turn them off, allowing
- you to watch what your program is doing to those memory locations.
-
- * You can, at any time, enable a help-window, to guide you through debugger
- commands. You will be astounded by the sophistication of this help-facility,
- especially since other debuggers offer no on-line help whatsoever.
-
- * All of the above-mentioned windows exist on the screen at the same time. You
- don't have to switch between them.
-
- * You can single-step your program with single keystrokes, rather than sequences
- of arcane commands. There are several flavors of single-step keys, clustered
- together on the function-keypad. This, combined with the automatic nature of
- the display, allows you to single-step very quickly. You feel like you are
- actually watching your program run.
-
- * Much of D86's command langauge is simply the A86 assembly language itself.
- You can type in any A86 instruction, to be executed immediately. You use this
- to set registers and variables, perform arithmetic, jump to another location,
- etc. The immediate-execution feature makes D86 the most effective tool
- available for teaching 86 architecture: the student can watch the effects of
- instructions on registers, flags, and memory.
-
- * You can patch programs in memory, using the full power of the A86 assembly
- language.
-
-
- To give you a balanced view of D86, I shall now list its limitations, including
- the reasons why I don't think it is of full product-quality yet.
-
- * D86 needs to be tested on a wide variety of hardware. Both screen-oriented
- programs and debuggers are very finicky to implement; since D86 is both, it
- is doubly finicky. Unlike A86, which interacts with the machine purely
- through MS-DOS function calls, D86 operates at a low level. It makes BIOS
- calls, it writes directly to video memory, it reads the video controller chip
- directly, and it creates and intercepts interrupts. I expect occasional
- trouble when people start running D86 on machines I haven't tried yet. I want
- to hear about all such machines; and I want to get D86 running on as many
- machines as possible.
-
- * D86 has restrictions on usage that don't have to (and hence shouldn't) be
- there. First, the associated assembler A86 must be in one of two directories:
- either the current directory, or in C:\BIN. D86 should look in any directory
- specified by the PATH variable, but it doesn't, yet. Second, D86 currently
- reads only .COM files; it doesn't read .EXE files yet.
-
- * D86 disassembles, and allows single-stepping of, the floating-point
- instruction set; but it does not display the values of the floating-point
- stack! That's unprofessional. There is a reason, other than lack of time,
- for this omission: I can't afford an 80287 chip, yet. So here's an OFFER: if
- you get together with some friends to buy 4 registrations, or if you get your
- company to buy a site license for A86, you can say, "OK, Eric, use the money
- to buy yourself a 287." If anybody does so before I have bought a 287 on my
- own, they will receive D86 with full floating support at least 30 days before
- the rest of the world gets it.
-
- * D86's status and error reporting is not what I think it should be. D86 should
- tell you the name of the program you're debugging. You should be able to get
- a display of which permanent breakpoints are set. When the program is
- trapped by D86, you should be told why the trap took place. If you type in
- an erroneous debugger command, you should be given an error message.
-
- * D86 is still an incomplete subset of my ultimate vision for a debugger.
- First, I have big plans for the window that now shows only the sign-on
- message and the help-screens. In non-help mode, you should be able to toggle
- through whichever of the following displays is appropriate for your machine:
-
- -- an expanded memory window
- -- a debugger status window
- -- a second disassembly window
- -- the floating-point stack and status registers
- -- the 286 protection registers and data structures
-
- Second, I plan to fill out the alphabet of debugger commands, and the
- keyboard-full of function keys. Some commands I have in mind are:
-
- -- save and play back keyboard scripts
- -- do sophisticated memory searches
- -- gateway to DOS, with EXIT back to debugging session
- -- more exotic stepping and trapping commands
- -- write a patched program or symbol table back to the disk
- -- save and switch to/from the program's full screen
- -- expression arithmetic (and indirection) in all operands
-
- I am eager to hear your ideas for what you'd like to see in terms of expanded
- features. I will consider all requests.
-
-
-
- Who IS That Guy?
-
- For those of you who wish to know what credentials I have for producing
- programs that meet the above claims, let me tell you who I am. I am
- an independent software consultant. I have worked with Intel microprocessors
- since the early days of the 8080. As an employee of Intel, I was a part of
- the two-man team that implemeted the first ASM86 assembler. I am one of the
- world's leading authorities on the entire 86-family of microcomputers, having
- completed numerous major projects involving the 8086, and 80186, and the
- 80286. I am currently under contract with Wiley and Sons, publishers, to
- write a book on the 386 architecture.
-
- A86 and D86 themselves are mature, solid programs. They have been in
- existence for over 2 years, running first under my own, proprietary operating
- system; then later under the Xenix operating system on Altos computers, used
- by myself and my clients.
-
- Although I have been unknown to the world of the IBM-PC until now, I intend
- to change all that in the next couple of years. Peter Norton, watch out.
-
-
- Support Your Local Bulletin Board
-
- Bob Breedlove, a BBS Sysop in California, sent me a suggestion with his
- registration: that I do something to support Sysops, since they are distributing
- my software for me. Good point, Bob. Let me try this experiment (but I reserve
- the legal right to cancel this offer at any time, without notice): if anybody
- who registers wishes to support the BBS from which they obtained my program,
- they should tell me the name and phone number of the BBS when they register.
- They should also leave a message to the Sysop that they have done so, so the
- Sysop can contact me with his/her address. If I receive 5 registrations naming
- a particular BBS, I'll award a free registration to the Sysop-- the Sysop can
- designate who the registration is for; or (if the Sysop has already paid for a
- registration) he/she can elect to receive a cash refund. For each subsequent 5
- registrations, I'll send the Sysop a cash rebate equal to one half the
- registration fee. Sorry, no bonuses for less than 5 registrations; I don't want
- to be swamped with paperwork.
-
-
- How to Get in Touch With Me
-
- I would love to hear about what you think of my products. But please remember
- that telephone support takes time; and I don't have the money to hire a support
- staff. The most obvious way for you to communicate to me is to include your
- comments with your registration. Another way to communicate with me is to leave
- a message, addressed to me, on the Bloomington PC-Link Central bulletin board,
- at (812)824-7990; or Indiana On-Line, at (812)332-7227. I'll try to promptly
- answer the questions of any REGISTERED users, either via the bulletin board, or
- by return mail if you send me a self-addressed, stamped envelope.
-
-
- What to Read Next
-
- Read the file CONTENTS.DOC for an description of all the files in this package.
- The file D86LIST.BAT will print the documentation files, in the order that they
- are presented in the table of contents.
-
- The file DEMO.DOC will guide you through a D86 session, showing you some of the
- features of D86.
-